package com.mo.lib.broadcasteceiver

import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import com.mo.lib.utils.KLog

/**
 * @ author：mo
 * @ data：2021/12/29:10:13
 * @ 功能：
 */
class TimerBroadCast(context: Context, val timeTick: (() -> Unit)? = null, val timeZoneChange: (() -> Unit)? = null, val timeChange: (() -> Unit)? = null) : BroadcastReceiver() {
    init {
        val intentFilter = IntentFilter()
        intentFilter.addAction(Intent.ACTION_TIME_TICK); //每分钟变化
        intentFilter.addAction(Intent.ACTION_TIMEZONE_CHANGED); //设置了系统时区
        intentFilter.addAction(Intent.ACTION_TIME_CHANGED); //设置了系统时间
        context.registerReceiver(this, intentFilter)
    }

    override fun onReceive(p0: Context?, p1: Intent?) {
        p1.let {
            when (p1?.action) {
                Intent.ACTION_TIME_TICK        -> { //时间变化，以分钟为单位
                    KLog.i("又过去了一分钟")
                    timeTick?.invoke()
                }
                Intent.ACTION_TIMEZONE_CHANGED -> {
                    KLog.i("系统时区变化了")
                    timeZoneChange?.invoke()
                }
                Intent.ACTION_TIME_CHANGED     -> {
                    KLog.i("系统时间设置发生变化")
                    timeChange?.invoke()
                }
                else                           -> {

                }

            }
        }

    }
}